package com.iris.live.services.data.models;

import javax.persistence.*;
import java.math.BigDecimal;
import java.sql.Date;

/**
 * Created by ThinkPad on 2016/10/18.
 */
@SuppressWarnings("JpaDataSourceORMInspection")
@Entity
@Table(name = "attachmentPolicy", schema = "sg_lsh", catalog = "")
public class AttachmentPolicyModel {
    private int id;
    private String permit;
    private Date bmbsReleaseDate;
    private String siProgramCodeEnglish;
    private String siTypeDescription;
    private String siProgramNameEnglish;
    private String siProgramNameChinese;
    private Date startDate;
    private Date endDate;
    private Integer itemNumber;
    private Integer carCode;
    private String area;
    private String apperanceCode;
    private String itemType;
    private String item;
    private String ncType;
    private Integer financeProductNumber;
    private BigDecimal siMoney;
    private BigDecimal siCost;
    private String siCondition;
    private String siContent;
    private Date createDate;
    private Date modifyDate;
    private String siStatus;
    private String releaseStatus;
    private String remark;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Basic
    @Column(name = "permit")
    public String getPermit() {
        return permit;
    }

    public void setPermit(String permit) {
        this.permit = permit;
    }

    @Basic
    @Column(name = "BMBS_release_date")
    public Date getBmbsReleaseDate() {
        return bmbsReleaseDate;
    }

    public void setBmbsReleaseDate(Date bmbsReleaseDate) {
        this.bmbsReleaseDate = bmbsReleaseDate;
    }

    @Basic
    @Column(name = "si_program_code_english")
    public String getSiProgramCodeEnglish() {
        return siProgramCodeEnglish;
    }

    public void setSiProgramCodeEnglish(String siProgramCodeEnglish) {
        this.siProgramCodeEnglish = siProgramCodeEnglish;
    }

    @Basic
    @Column(name = "si_type_description")
    public String getSiTypeDescription() {
        return siTypeDescription;
    }

    public void setSiTypeDescription(String siTypeDescription) {
        this.siTypeDescription = siTypeDescription;
    }

    @Basic
    @Column(name = "si_program_name_english")
    public String getSiProgramNameEnglish() {
        return siProgramNameEnglish;
    }

    public void setSiProgramNameEnglish(String siProgramNameEnglish) {
        this.siProgramNameEnglish = siProgramNameEnglish;
    }

    @Basic
    @Column(name = "si_program_name_chinese")
    public String getSiProgramNameChinese() {
        return siProgramNameChinese;
    }

    public void setSiProgramNameChinese(String siProgramNameChinese) {
        this.siProgramNameChinese = siProgramNameChinese;
    }

    @Basic
    @Column(name = "start_date")
    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    @Basic
    @Column(name = "end_date")
    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    @Basic
    @Column(name = "item_number")
    public Integer getItemNumber() {
        return itemNumber;
    }

    public void setItemNumber(Integer itemNumber) {
        this.itemNumber = itemNumber;
    }

    @Basic
    @Column(name = "car_code")
    public Integer getCarCode() {
        return carCode;
    }

    public void setCarCode(Integer carCode) {
        this.carCode = carCode;
    }

    @Basic
    @Column(name = "area")
    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    @Basic
    @Column(name = "apperance_code")
    public String getApperanceCode() {
        return apperanceCode;
    }

    public void setApperanceCode(String apperanceCode) {
        this.apperanceCode = apperanceCode;
    }

    @Basic
    @Column(name = "item_type")
    public String getItemType() {
        return itemType;
    }

    public void setItemType(String itemType) {
        this.itemType = itemType;
    }

    @Basic
    @Column(name = "item")
    public String getItem() {
        return item;
    }

    public void setItem(String item) {
        this.item = item;
    }

    @Basic
    @Column(name = "NC_type")
    public String getNcType() {
        return ncType;
    }

    public void setNcType(String ncType) {
        this.ncType = ncType;
    }

    @Basic
    @Column(name = "finance_product_number")
    public Integer getFinanceProductNumber() {
        return financeProductNumber;
    }

    public void setFinanceProductNumber(Integer financeProductNumber) {
        this.financeProductNumber = financeProductNumber;
    }

    @Basic
    @Column(name = "SI_money")
    public BigDecimal getSiMoney() {
        return siMoney;
    }

    public void setSiMoney(BigDecimal siMoney) {
        this.siMoney = siMoney;
    }

    @Basic
    @Column(name = "SI_cost")
    public BigDecimal getSiCost() {
        return siCost;
    }

    public void setSiCost(BigDecimal siCost) {
        this.siCost = siCost;
    }

    @Basic
    @Column(name = "SI_condition")
    public String getSiCondition() {
        return siCondition;
    }

    public void setSiCondition(String siCondition) {
        this.siCondition = siCondition;
    }

    @Basic
    @Column(name = "SI_content")
    public String getSiContent() {
        return siContent;
    }

    public void setSiContent(String siContent) {
        this.siContent = siContent;
    }

    @Basic
    @Column(name = "create_date")
    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    @Basic
    @Column(name = "modify_date")
    public Date getModifyDate() {
        return modifyDate;
    }

    public void setModifyDate(Date modifyDate) {
        this.modifyDate = modifyDate;
    }

    @Basic
    @Column(name = "SI_status")
    public String getSiStatus() {
        return siStatus;
    }

    public void setSiStatus(String siStatus) {
        this.siStatus = siStatus;
    }

    @Basic
    @Column(name = "release_status")
    public String getReleaseStatus() {
        return releaseStatus;
    }

    public void setReleaseStatus(String releaseStatus) {
        this.releaseStatus = releaseStatus;
    }

    @Basic
    @Column(name = "remark")
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        AttachmentPolicyModel that = (AttachmentPolicyModel) o;

        if (id != that.id) return false;
        if (permit != null ? !permit.equals(that.permit) : that.permit != null) return false;
        if (bmbsReleaseDate != null ? !bmbsReleaseDate.equals(that.bmbsReleaseDate) : that.bmbsReleaseDate != null)
            return false;
        if (siProgramCodeEnglish != null ? !siProgramCodeEnglish.equals(that.siProgramCodeEnglish) : that.siProgramCodeEnglish != null)
            return false;
        if (siTypeDescription != null ? !siTypeDescription.equals(that.siTypeDescription) : that.siTypeDescription != null)
            return false;
        if (siProgramNameEnglish != null ? !siProgramNameEnglish.equals(that.siProgramNameEnglish) : that.siProgramNameEnglish != null)
            return false;
        if (siProgramNameChinese != null ? !siProgramNameChinese.equals(that.siProgramNameChinese) : that.siProgramNameChinese != null)
            return false;
        if (startDate != null ? !startDate.equals(that.startDate) : that.startDate != null) return false;
        if (endDate != null ? !endDate.equals(that.endDate) : that.endDate != null) return false;
        if (itemNumber != null ? !itemNumber.equals(that.itemNumber) : that.itemNumber != null) return false;
        if (carCode != null ? !carCode.equals(that.carCode) : that.carCode != null) return false;
        if (area != null ? !area.equals(that.area) : that.area != null) return false;
        if (apperanceCode != null ? !apperanceCode.equals(that.apperanceCode) : that.apperanceCode != null)
            return false;
        if (itemType != null ? !itemType.equals(that.itemType) : that.itemType != null) return false;
        if (item != null ? !item.equals(that.item) : that.item != null) return false;
        if (ncType != null ? !ncType.equals(that.ncType) : that.ncType != null) return false;
        if (financeProductNumber != null ? !financeProductNumber.equals(that.financeProductNumber) : that.financeProductNumber != null)
            return false;
        if (siMoney != null ? !siMoney.equals(that.siMoney) : that.siMoney != null) return false;
        if (siCost != null ? !siCost.equals(that.siCost) : that.siCost != null) return false;
        if (siCondition != null ? !siCondition.equals(that.siCondition) : that.siCondition != null) return false;
        if (siContent != null ? !siContent.equals(that.siContent) : that.siContent != null) return false;
        if (createDate != null ? !createDate.equals(that.createDate) : that.createDate != null) return false;
        if (modifyDate != null ? !modifyDate.equals(that.modifyDate) : that.modifyDate != null) return false;
        if (siStatus != null ? !siStatus.equals(that.siStatus) : that.siStatus != null) return false;
        if (releaseStatus != null ? !releaseStatus.equals(that.releaseStatus) : that.releaseStatus != null)
            return false;
        if (remark != null ? !remark.equals(that.remark) : that.remark != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = id;
        result = 31 * result + (permit != null ? permit.hashCode() : 0);
        result = 31 * result + (bmbsReleaseDate != null ? bmbsReleaseDate.hashCode() : 0);
        result = 31 * result + (siProgramCodeEnglish != null ? siProgramCodeEnglish.hashCode() : 0);
        result = 31 * result + (siTypeDescription != null ? siTypeDescription.hashCode() : 0);
        result = 31 * result + (siProgramNameEnglish != null ? siProgramNameEnglish.hashCode() : 0);
        result = 31 * result + (siProgramNameChinese != null ? siProgramNameChinese.hashCode() : 0);
        result = 31 * result + (startDate != null ? startDate.hashCode() : 0);
        result = 31 * result + (endDate != null ? endDate.hashCode() : 0);
        result = 31 * result + (itemNumber != null ? itemNumber.hashCode() : 0);
        result = 31 * result + (carCode != null ? carCode.hashCode() : 0);
        result = 31 * result + (area != null ? area.hashCode() : 0);
        result = 31 * result + (apperanceCode != null ? apperanceCode.hashCode() : 0);
        result = 31 * result + (itemType != null ? itemType.hashCode() : 0);
        result = 31 * result + (item != null ? item.hashCode() : 0);
        result = 31 * result + (ncType != null ? ncType.hashCode() : 0);
        result = 31 * result + (financeProductNumber != null ? financeProductNumber.hashCode() : 0);
        result = 31 * result + (siMoney != null ? siMoney.hashCode() : 0);
        result = 31 * result + (siCost != null ? siCost.hashCode() : 0);
        result = 31 * result + (siCondition != null ? siCondition.hashCode() : 0);
        result = 31 * result + (siContent != null ? siContent.hashCode() : 0);
        result = 31 * result + (createDate != null ? createDate.hashCode() : 0);
        result = 31 * result + (modifyDate != null ? modifyDate.hashCode() : 0);
        result = 31 * result + (siStatus != null ? siStatus.hashCode() : 0);
        result = 31 * result + (releaseStatus != null ? releaseStatus.hashCode() : 0);
        result = 31 * result + (remark != null ? remark.hashCode() : 0);
        return result;
    }
}
